The present invention relates generally to building automation systems. More particularly, the invention relates to an object-oriented building automation system that uses distributed components with an improved and reliable asynchronous communication system.
The trend today in building automation systems is a movement of system intelligence from the central master controller to the individual building automation devices. Whereas once building automation control functions were administered from a central host computer, now many control functions are being placed in the device controllers themselves, often located on nodes of a network far from any central master controller. It is expected that the ever increasing supply of lower cost microprocessors, microcontrollers, and the continual drop in random access memory prices will drive even more control functionality from the central master controller to the system nodes.
To take full advantage of available hardware, building automation system designers would like to create distributed systems made up of intelligent components that work interchangeably with one another. Although the individual controllers at each node in a building automation network lack considerable computing power, they represent considerable computing power when considered collectively. The problem control engineers face today is how to harness that computing power. If these individual controllers could be integrated to work collectively they could perform sophisticated functions formerly possible only by using a powerful central controller. The difficulty has heretofore been how to integrate these controllers so that collectively they may perform sophisticated functions.
The present invention provides a software system architecture that allows software engineers to more readily build modular, portable building automation applications. The software system architecture is based on a distributed application component model that includes object-oriented constructs for performing a range of services used to construct more complex applications. The invention provides a development architecture in which sophisticated building automation applications may be constructed from a plurality of comparatively simple standard building automation objects. These objects, many of which are quite small and perform a singular purpose, communicate with one another asynchronously through special connection objects provided by the communication architecture of the invention. The connection objects serve as the glue that binds the other standard objects into a complex building automation application.
One additional problem system designers have had to grapple with is reliability in an distributed and asynchronous communication environment. As functionality becomes increasingly distributed onto many nodes throughout a complex network, it becomes more difficult to trap errors and handle faults in a way that minimizes the effect upon the system as a whole. While it is relatively straightforward to embed an error-handling routine into each node controller (to handle local faults), it is far more difficult in a distributed system to ensure that other node controllers take appropriate corrective action when one of the sibling nodes fails. The lack of a central controller adds to the problem, as there is often no single controller in charge of all error handling and/or reliability determinations.